#include "MQueue.h"

CMQueue::CMQueue(long in_lType)
{
  m_lType = in_lType;
  m_nMsqid = msgget(COMMON_KEY, PERM | IPC_CREAT);

  if (-1 == m_nMsqid)
  {
    printf("Fatal error! Msg queue create error!\n");
    return;
  }
}

CMQueue::~CMQueue()
{
}

int CMQueue::send_msg(TMsg* in_pTMsg)
{
  return msgsnd(msgget(COMMON_KEY, PERM),
                in_pTMsg,
                sizeof(TMsg),
                0);
}

int CMQueue::recv_msg(TMsg* out_pTMsg)
{ 
  char buf[200];
  msgrcv(m_nMsqid, buf, sizeof(TMsg), m_lType, 0);
  memcpy(out_pTMsg, buf, sizeof(TMsg));
  return 0;
}
